#include <iostream>
#include "last_fib_num.h"

//Задача на программирование. Дано число n (1≤n≤10^7), необходимо найти последнюю цифру n-го числа Фибоначчи.

//Как мы помним, числа Фибоначчи растут очень быстро, поэтому при их вычислении нужно быть аккуратным с переполнением.
//В данной задаче, впрочем, этой проблемы можно избежать, поскольку нас интересует только последняя цифра числа Фибоначчи:
//если 0≤a,b≤9 —последние цифры чисел Fi и Fi+1 соответственно, то (a+b)mod10 — последняя цифра числа Fi+2.

//Sample Input:
//623162
//Sample Output:
//1
//Memory Limit: 256 MB
//Time Limit: 5 seconds

int main()
{
    unsigned n = 0;

    while (1)
    {
        std::cout << "Input integer in range [1, 10^7]: ";
        std::cin >> n;

        if (n < 1 || n > 10000000)
        {
            std::cout << "Invalid input data" << std::endl;
            continue;
        }

        try
        {
            std::cout << "last_fib_num(" << n << ") = " << last_fib_num(n) << std::endl;
        }
        catch(const std::exception &ex)
        {
            std::cout << ex.what() << std::endl;
        }
    }
}

